"""
功能描述：查找用例，执行用例，生成报告，发送邮件自动清理报告

"""
import unittest,os,time
from HTMLTestRunner import HTMLTestReportCN
from 高级版接口第二周.common.sendexcel import sendexcel
from 高级版接口第二周.common.log import loger
pro_dir=os.path.dirname(__file__)
report_dir=pro_dir+'/testreport'
time.asctime()

def creace_suite():
    # 获取用例路径
    start_dir=os.path.dirname(__file__)+'/testcase'
    # 生成测试套件
    suite =unittest.defaultTestLoader.discover(start_dir,pattern='test,py',top_level_dir=None)
    return suite

#清理报告
def auto_clear():
    file_list=os.listdir(report_dir)
    if len(file_list)>2:
        for i in file_list[:-2]:
            os.remove(report_dir+'/'+i)

if __name__ == '__main__':
    auto_clear()
    suite=creace_suite()

    #定义报告文件名
    cur_time=time.strftime('%Y-%m-%d %H-%M-%S',time.localtime())
    report =report_dir+'/'+cur_time+'result.html'
    #写入方式打开
    with open(report,'wb')as fp:
        runner =HTMLTestReportCN(stream=fp,verbosity=1,title='接口自动化测试报告',description='测试报告详情')
        runner.run(suite)
    #判断当前文件是否已经生成，生成后在发送邮件
    while True:
        time.sleep(1)
        if os.path.exists(report):
            se=sendexcel()
            se.send(report)
            break
    loger.info('file---%s' % report)

